﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DECOR.BL.BE;
using System.Data;
using System.Data.SqlClient;

namespace DECOR.DL.DALC.MSSQL
{
    public class UsuarioSAPDALC : DALGC, IUsuarioSAPDALC
    {
        #region IUsuarioSAPDALC Members

        public List<UsuarioSAPBE> listar()
        {
            List<UsuarioSAPBE> lstUsuarios = new List<UsuarioSAPBE>();
            try
            {
                DataTable dt = SqlHelper.ExecuteDataset(this.UsersConnStr, "usps_usuariosSAP").Tables[0];
                foreach (DataRow dr in dt.Rows)
                {
                    UsuarioSAPBE objUsuario = new UsuarioSAPBE();
                    objUsuario.Usuario_id = Convert.ToInt32(dr["usuario_id"]);
                    objUsuario.Usuario = dr["usuario"].ToString();
                    objUsuario.Clave = dr["clave"].ToString();
                    objUsuario.Mandante = Convert.ToInt32(dr["mandante"].ToString());
                    objUsuario.Sistema_id = Convert.ToInt32(dr["sistema_id"].ToString());
                    lstUsuarios.Add(objUsuario);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return lstUsuarios;
        }

        public void agregar(UsuarioSAPBE objUsuarioSAP)
        {
            try
            {
                SqlParameter p1 = new SqlParameter("@lpUsuario", objUsuarioSAP.Usuario);
                SqlParameter p2 = new SqlParameter("@lpClave", objUsuarioSAP.Clave);
                SqlParameter p3 = new SqlParameter("@lpMandante", objUsuarioSAP.Mandante);
                SqlParameter p4 = new SqlParameter("@lpSistema_id", objUsuarioSAP.Sistema_id);
                int retval = SqlHelper.ExecuteNonQuery(this.UsersConnStr, "uspi_usuariosSAP", p1, p2, p3, p4);

            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public bool actualizar(UsuarioSAPBE objUsuarioSAP)
        {
            int retval = 0;
            try
            {
                SqlParameter p0 = new SqlParameter("@lpUsuario_id", objUsuarioSAP.Usuario_id);
                SqlParameter p1 = new SqlParameter("@lpUsuario", objUsuarioSAP.Usuario);
                SqlParameter p2 = new SqlParameter("@lpClave", objUsuarioSAP.Clave);
                SqlParameter p3 = new SqlParameter("@lpMandante", objUsuarioSAP.Mandante);
                SqlParameter p4 = new SqlParameter("@lpSistema_id", objUsuarioSAP.Sistema_id);
                retval = SqlHelper.ExecuteNonQuery(this.UsersConnStr, "uspu_usuariosSAP", p0, p1, p2, p3, p4);

            }
            catch (Exception ex)
            {
                throw ex;
            }
            return (retval != 0 ? true : false);
        }

        public void eliminar(int pUsuario_id)
        {
            try
            {
                SqlParameter p1 = new SqlParameter("@lpUsuario_id", pUsuario_id);
                int retval = SqlHelper.ExecuteNonQuery(this.UsersConnStr, "uspd_usuariosSAP", p1);

            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public List<UsuarioSAPBE> listarXSistema(int pSistema_id)
        {
            List<UsuarioSAPBE> lstUsuarios = new List<UsuarioSAPBE>();
            try
            {
                SqlParameter p1 = new SqlParameter("@lpSistema_id", pSistema_id);
                DataTable dt = SqlHelper.ExecuteDataset(this.UsersConnStr, "usps_usuariosSAP", DBNull.Value, DBNull.Value, DBNull.Value, p1).Tables[0];
                foreach (DataRow dr in dt.Rows)
                {
                    UsuarioSAPBE objUsuario = new UsuarioSAPBE();
                    objUsuario.Usuario_id = Convert.ToInt32(dr["usuario_id"]);
                    objUsuario.Usuario = dr["usuario"].ToString();
                    objUsuario.Clave = dr["clave"].ToString();
                    objUsuario.Mandante = Convert.ToInt32(dr["mandante"].ToString());
                    objUsuario.Sistema_id = Convert.ToInt32(dr["sistema_id"].ToString());
                    lstUsuarios.Add(objUsuario);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return lstUsuarios;
        }

        public UsuarioSAPBE leer(int pUsuarioSAP_id)
        {
            UsuarioSAPBE objUsuario = null;
            try
            {
                SqlParameter p1 = new SqlParameter("@lpUsuario_id", pUsuarioSAP_id);
                DataTable dt = SqlHelper.ExecuteDataset(this.UsersConnStr, "usps_usuariosSAP", p1, DBNull.Value, DBNull.Value, DBNull.Value).Tables[0];
                if (dt.Rows.Count == 1)
                {
                    DataRow dr = dt.Rows[0];
                    objUsuario = new UsuarioSAPBE();
                    objUsuario.Usuario_id = Convert.ToInt32(dr["usuario_id"]);
                    objUsuario.Usuario = dr["usuario"].ToString();
                    objUsuario.Clave = dr["clave"].ToString();
                    objUsuario.Mandante = Convert.ToInt32(dr["mandante"].ToString());
                    objUsuario.Sistema_id = Convert.ToInt32(dr["sistema_id"].ToString());
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return objUsuario;
        }

        #endregion
    }
}
